import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
#创建两个圈，
X1,y1=datasets.make_circles(n_samples=5000,factor=0.6,noise=0.05)
#画一个簇
X2,y2=datasets.make_blobs(n_samples=1000,n_features=2,centers=[[1.2,1.2]],cluster_std=[[0.1]])

X=np.concatenate((X1,X2))
#画出样本点图
plt.scatter(X[:,0],X[:,1],marker='o')
plt.show()
#导入kmeans包
from sklearn.cluster import KMeans
#建立模型并预测
y_preb=KMeans(n_clusters=3,random_state=9).fit_predict(X)
#画分类之后的样本点图
plt.scatter(X[:,0],X[:,1],c=y_preb)
plt.show()
#导入密度聚类包
from sklearn.cluster import DBSCAN
#建立模型并预测
y_preb=DBSCAN().fit_predict(X)
#画密度聚类后样本点图
#默认半径为0.5，默认样本点阈值为5个
plt.scatter(X[:,0],X[:,1],c=y_preb)
plt.show()
#改变默认半径为0.1
#训练模型并画图
y_preb=DBSCAN(eps=0.1,min_samples=9).fit_predict(X)
plt.scatter(X[:,0],X[:,1],c=y_preb)
plt.show()